package com.sdry.mapper.hpf;

import java.util.List;
import java.util.Map;

import com.sdry.model.hpf.Bom;
import com.sdry.model.hpf.Part;
import com.sdry.model.hpf.Product;

/** 
* BOM管理持久层
* @author lian 
* @version 1.0
* @time 2018年10月15日 下午3:06:44
*/
public interface BomMapper {

	/**
	 * 查询BOM数据总行数
	 * @param bom 物料清单
	 * @return
	 */
	int countBom(Bom bom);

	/**
	 * 分页查询BOM数据
	 * @param map 参数集合
	 * @return
	 */
	List<Bom> listPageBom(Map<String, Object> map);

	/**
	 * 添加BOM数据
	 * @param bom 物料清单
	 * @return
	 */
	int insertBom(Bom bom);
	
	/**
	 * 修改BOM数据
	 * @param bom 物料清单
	 * @return
	 */
	int updateBom(Bom bom);

	/**
	 * 根据产品ID分页查询产品的配件信息
	 * @param map 参数集合
	 * @return
	 */
	List<Part> listPagePartByProduct(Map<String, Object> map);

	/**
	 * 根据产品ID获取产品的配件总数
	 * @param proruct 产品信息
	 * @return
	 */
	int countPartByProduct(Product product);

	/**
	 * 根据产品ID查询产品的所有配件信息
	 * @param proruct 产品信息
	 * @return
	 */
	List<Part> listAllPartByProduct(Product product);

	/**
	 * 根据产品ID查询BOM数据
	 * @param pid 产品ID
	 * @return
	 */
	List<Bom> getBomByPid(Long pid);

	/**
	 * 查询BOM数据
	 * @param bom
	 * @return
	 */
	Bom findBomByBom(Bom bom);

	/**
	 * 删除BOM数据
	 * @param bom 物料清单
	 * @return
	 */
	int deleteBom(Bom bom);
	/**
	 * 根据pid查询所有
	 * @param pid
	 * @return
	 */
	List<Bom> listAllBom(Long pid);

	/**
	 * 根据配件ID查询BOM数据
	 * @param paid
	 * @return
	 */
	List<Bom> getBomByPaid(Long paid);
	
	/**
	 * 根据产品ID和工位名称查询BOM数据
	 * @param map 参数集合
	 * @return
	 */
	List<Bom> getBomByPaidAndPositionName(Map<String, Object> map);
	
}
